#pragma once
#include <list>
#include "TCharSupport.h"
#include "EpilForStatementCodeBase.h"
#include "EpilExpressionCodeBase.h"

using namespace std;


class EpilForListStatementCode : public EpilForStatementCodeBase
{
	EPIL_CODE_DECL( ForListStatement );

public:
	EpilForListStatementCode( const EpilLexLocation & location );
	virtual ~EpilForListStatementCode();

	list<tstring> &						GetVariables()												{ return m_variables; }
	const list<tstring> &				GetVariables() const										{ return m_variables; }
	void								SetVariables( const list<tstring> & variables )				{ m_variables = variables; }
	EpilExpressionCodeList &			GetIterators()												{ return m_iterators; }
	const EpilExpressionCodeList &		GetIterators() const										{ return m_iterators; }
	void								SetIterators( const EpilExpressionCodeList & iterators )	{ m_iterators = iterators; }

	virtual tstring						ToEpilCode( int indent ) const;

private:
	list<tstring>						m_variables;
	EpilExpressionCodeList				m_iterators;
};
